﻿using Common.Contract.Warranty.Request;
using Common.Contract.Warranty.Response;
using System.ServiceModel;

namespace Common.Contract.Warranty
{
    [ServiceContract]
    public interface IWarranty
    {
        #region Sellout Verify
        [OperationContract]
        SearchSaleOutVerificationResponse SearchSaleOutVerification(SearchSaleOutVerificationRequest request);

        [OperationContract]
        ResponseRecord ConfirmSaleOut(ConfirmSaleOutRequest request);
        #endregion

        #region Period Inquiry
        [OperationContract]
        SearchPeriodInquiryResponse SearchPeriodInquiry(SearchPeriodInquiryRequest request);
        #endregion

        #region Serial Chasing
        [OperationContract]
        SearchSerialChasingResponse SearchSerialChasing(SearchSerialChasingRequest request);
        #endregion

        #region Response SMS actions
        [OperationContract]
        SearchResponseSMSResponse SearchResponseSMS(SearchResponseSMSRequest request);

        [OperationContract]
        RetrieveResponseSMSResponse RetrieveResponseSMS(RetrieveResponseSMSRequest request);

        [OperationContract]
        ResponseRecord UpdateResponseSMS(UpdateResponseSMSRequest request);
        #endregion

        [OperationContract]
        SearchPndHistResponse SearchPndHistory(SearchPndHistRequest request);

        [OperationContract]
        ResponseRecord UpdatePndHistory(UpdatePndHistRequest request);

        [OperationContract]
        SearchWarrantyHistoryResponse SearchWarrantyHistory(SearchWarrantyHistoryRequest request);

        [OperationContract]
        ResponseRecord UpdateWarrantyHistoryory(UpdateWarrantyHistoryRequest request);

        [OperationContract]
        SearchWarrantyMessageResponse SearchWarrantyMessage(SearchWarrantyMessageRequest request);

        [OperationContract]
        SearchWarrantyMasterResponse SearchWarrantyMaster(SearchWarrantyMasterRequest request);

        [OperationContract]
        ResponseRecord UpdateWarrantyMaster(UpdateWarrantyMasterRequest request);

        [OperationContract]
        ResponseRecord UpdateWarrantyMessage(UpdateWarrantyMessageRequest request);
    }
}
